package com.tedu.dao.impl;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.tedu.dao.IProductDao;
import com.tedu.model.Product;
@Repository
public class ProductDao extends BaseDao<Product> implements IProductDao {

	/**
	 * 前台首页获取所有上架商品
	 */
	@Override
	public List<Product> listAllProduct() {
		List<Product> products = openSession().selectList(Product.class.getName() + ".listAllProduct");
		return products;
	}

	/**
	 * 前台查询商品详细信息
	 */
	@Override
	public Product productItem(int id) {
		Product product = openSession().selectOne(Product.class.getName() + ".productItem", id);
		return product;
	}
     /*	    返回相应类别id的商品列表                     狄克*/
	@Override
	public List<Product> listCategoryProduct(int id) {
		List<Product> products = openSession().selectList(Product.class.getName() + ".listCategoryProduct", id);
		return products;
	}
	@Override
	 /*	    返回查询的商品名字                   狄克*/
	public	List<Product> selectProductsName(String str){
		List<Product> products = openSession().selectList(Product.class.getName() + ".selectproductname", str);
		return products;
	}
	@Override
	 /*	    返回查询的商品状态                  狄克*/
	public	List<Product> selectProductsStatus(int str){
		List<Product> products = openSession().selectList(Product.class.getName() + ".selectproductstatus", str);
		return products;
	}
	@Override
	 /*	    返回查询的商品分类                   狄克*/
	public	List<Product> selectProductsCategory(String str){
		List<Product> products = openSession().selectList(Product.class.getName() + ".selectproductcategory", str);
		return products;
	}
	@Override
	 /*	    返回查询的商品折扣                   狄克*/
	public	List<Product> selectProductsDiscount(Double str){
		List<Product> products = openSession().selectList(Product.class.getName() + ".selectproductdiscount", str);
		return products;
	}
	
	

	// 新项目从下面开始

	/**
	 * 前台查询所有属于某种状态的商品
	 */
	@Override
	public List<Product> listAllProductByFeature(int status) {
		List<Product> products = openSession().selectList(Product.class.getName() + ".listAllProductByFeature", status);
		return products;
	}

	/**
	 * 前台查询所有折扣商品
	 */
	@Override
	public List<Product> listAllProductOfDiscount() {
		List<Product> products = openSession().selectList(Product.class.getName() + ".listAllProductOfDiscount");
		return products;
	}

	/**
	 * 前台模糊查询所有产品
	 */
	@Override
	public List<Product> fuzzyQueryAll(Map<String, String> map) {
		List<Product> products = openSession().selectList(Product.class.getName() + ".fuzzyQueryAll", map);
		System.out.println("所有产品模糊查询执到这里");
		return products;
	}

	/**
	 * 前台模糊查询折扣产品
	 */
	@Override
	public List<Product> fuzzyQueryDiscountProducts(Map<String, String> map) {
		List<Product> products = openSession().selectList(Product.class.getName() + ".fuzzyQueryDiscountProducts", map);
		System.out.println("折扣产品模糊查询执到这里");
		return products;
	}

	/**
	 * 前台模糊查询热销/特色产品
	 */
	@Override
	public List<Product> fuzzyQueryByFeature(Map<String, Object> map) {
		List<Product> products = openSession().selectList(Product.class.getName() + ".fuzzyQueryByFeature", map);
		System.out.println("热销/特色产品模糊查询执到这里");
		return products;
	}
	/**
	 * 前台查询某种类别下的产品
	 */
	@Override
	public List<Product> queryByCategory(int cid) {
		List<Product> products = openSession().selectList(Product.class.getName() + ".queryByCategory", cid);
		return products;
	}


	/**
	 * 模糊查询类别产品
	 */
	@Override
	public List<Product> fuzzyQueryByCategory(Map<String, Object> map) {
		List<Product> products = openSession().selectList(Product.class.getName() + ".fuzzyQueryByCategory", map);
		return products;
	}

}
